In a system where multiple entities request data transfers over a shared bus there needs to be an arbiter that decides who's data request gets serviced at a given time and how much of the data gets transferred.